Specular highlights on photos of objects

ABSTRACT

Systems and methods are presented for recording and viewing images of objects with specular highlights. In some embodiments, a computer-implemented method may include accessing a first plurality of images, each of the images in the first plurality of images including an object recorded from a first position, and a reflection of light on the object from a light source located at a different location than in each of the other images in the first plurality of images. The method may also include generating a first composite image of the object, the first composite image comprising a superposition of the first plurality of images, and wherein each of the images in the first plurality of images is configured to change in a degree of transparency within the first composite image and in accordance with a first input based on a degree of tilt.

CLAIM OF PRIORITY

This application is a continuation of U.S. application Ser. No.15/809,577, filed Nov. 10, 2017, which is a continuation of U.S.application Ser. No. 15/468,761, filed Mar. 24, 2017, which is acontinuation of U.S. application Ser. No. 14/260,091, filed Apr. 23,2014, each of which is hereby incorporated by reference in its entirety.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever. The following notice applies to the software and dataas described below and in the drawings that form a part of thisdocument: Copyright 2013, eBay Inc. All Rights Reserved.

TECHNICAL FIELD

The subject matter disclosed herein generally relates to enhancingdigital images. In some example embodiments, the present disclosuresrelate to systems and methods for specular highlights on photos ofobjects.

BACKGROUND

In the digital age, recording digital images of objects has becomevastly more commonplace. Many uses are available for recording anddisplaying digital images, including posting retail products online,sharing pictures of presents and gifts to friends and family,supplementing journalistic articles with pictures, and presenting imagesfor research purposes. As recording and displaying digital images becomeever more commonplace, the desire to improve the capturing of real lifeimages increases.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings.

FIG. 1 is a mobile device suitable for recording images of an object,and for generating and/or viewing a composite image based on therecorded images, according to some example embodiments.

FIG. 2 is a network architecture suitable for storing images of anobject, and for generating and/or transmitting a composite image basedon the recorded images, according to some example embodiments.

FIG. 3 is an example image of an object having specular highlights, usedin some example embodiments.

FIG. 4 is an example image of a first step in a process for recordingobjects having specular highlights, according to some exampleembodiments.

FIG. 5 illustrates example images of further steps in a process forrecording objects having specular highlights, according to some exampleembodiments.

FIGS. 6A and 6B illustrate example images of yet further steps in aprocess for recording objects having specular highlights, according tosome example embodiments.

FIG. 7 illustrates example images of yet further steps in a process forrecording objects having specular highlights, according to some exampleembodiments.

FIGS. 8A and 8B illustrate example images of viewing objects havingspecular highlights, according to some example embodiments.

FIG. 9 is a flowchart illustrating example operations for generating acomposite image of an object, according to some example embodiments.

FIG. 10 is a flowchart illustrating example operations for viewing acomposite image of an object, according to some example embodiments.

FIG. 11 is a block diagram illustrating components of a machine,according to some example embodiments, able to read instructions from amachine-readable medium and perform any one or more of the methodologiesdiscussed herein.

DETAILED DESCRIPTION

Example methods, apparatuses and systems are presented for generatingand viewing images of objects with specular highlights. In some exampleembodiments, the images can display changing specular properties basedon motion control of the display device displaying the image.

As digital images become more commonplace, it is desirable to improvethe presentation of real life objects through digital means. In general,there is a desire to represent real life objects and environments in asreal a depiction through digital means as possible. However, some typesof objects have been more difficult to effectively capture and displaythan others. In particular, as examples, objects that possess at leastsome reflective or specular properties, such as polished gemstones,crystal vases, jewelry, glossy plastic objects, etc., tend not to becaptured well in pictures because the reflective brilliance of thoseobjects cannot be fully expressed through just a static picture alone.For example, a viewer may be unable to fully appreciate with just asingle static image a gemstone with many reflective angles. In general,objects with specular or reflective properties where light reflects offthe object in many different directions tend to lose their luster orbrilliance when attempted to be displayed in a single digital image.

Transitioning to online displays and showrooms can thus be difficult forcertain businesses or industries. For example, jewelry retailers anddesigners have a difficult time conveying the best facets of theirproducts when trying to advertise online. As more products andbusinesses rely on online shopping and sales, current means fordisplaying goods online may be inadequate for some, and as a resultthese businesses or industries may lose customers and/or sales. It istherefore desirable to improve means for recording and viewing objectsdigitally, and in particular recording and viewing objects withreflective or specular properties. These problems and more may be solvedby the following disclosures.

Aspects of the present disclosure discuss methods and systems forrecording and viewing images of objects with specular highlights. Insome example embodiments, the digital image of an object may be “tilted”from various angles, and light reflecting off the object may vary inaccordance with the tilt of the image. In some example embodiments,while to the viewer it may appear that there is just a single image ofthe object presented on a display screen, the image of the object mayactually be a composite blend of multiple images of the same object, butwith at least one light source shining on the object from differentangles in each of the multiple images. Depending on the viewing angle ofthe composite image by the viewer, based on a tilt vector measured byone or more gyroscopes and/or accelerometers in the display device, forexample, some of these multiple images may be made completelytransparent, so that they are not viewable based on said viewing angle,while one or more of the multiple images may be made more opaque, thusgenerating a sort of blended image of the object that displays a certainangle of light reflecting off the object. A more detailed descriptionwill be presented herein, in accordance with the figures of the presentdisclosures.

Referring to FIG. 1, a block diagram illustrating a mobile device 100 ispresented, according to some example embodiments. The mobile device 100may be configured to record images of objects with specular highlights,as well as view images according to at least some example embodiments.The mobile device 100 may be configured to record images of an object,with each image have a light source directed at an object from differentangles. For example, camera lens 185 may be configured to receive imagedata, which may be used by an image recorder 180 to record images of anobject, the camera lens 185 being controlled by image recorder 180. Themobile device 100 may alternatively or additionally be configured toview a composite image of the object, the composite image showingvarious angles of light directed on the object in accordance with a tiltvector. For example, display 150 may be configured to display themultiple images and/or the composite image according to some exampleembodiments. The mobile device 100 may include a processor 110. Theprocessor 110 may be any of a variety of different types of commerciallyavailable processors suitable for mobile devices (e.g., an XScalearchitecture microprocessor, a Microprocessor without InterlockedPipeline Stages (MIPS) architecture processor, or another type ofprocessor). The processor 110 may be configured to combine the multipleimages of the object into a composite image according to some exampleembodiments. A memory 120, such as a random access memory (RAM), a Flashmemory, or other type of memory, is typically accessible to theprocessor. The memory 120 may be adapted to store an operating system(OS) 130, as well as application programs 140, such as a mobileapplication for generating a composite image of an object using themultiple images, and/or a mobile application for viewing the compositeimage. The processor 110 may be coupled, either directly or viaappropriate intermediary hardware, to a display 150 and to one or moreinput/output (I/O) devices 160, such as a keypad, a touch panel sensor,a microphone, and the like. Similarly, in some embodiments, theprocessor 110 may be coupled to a transceiver 170 that interfaces withan antenna 190. The transceiver 170 may be configured to both transmitand receive cellular network signals, wireless data signals, or othertypes of signals via the antenna 190, depending on the nature of themobile device 100. In this manner, a connection with a network such asnetwork 204 of FIG. 2, discussed more below, may be established. Mobiledevice 100 may also include one or more means for obtaining a3-dimensional orientation of the mobile device 100. For example, one ormore gyroscopes and/or accelerometers, not shown, may be built into themobile device, the gyroscopes and/or accelerometers configured todetermine a degree of tilt of the mobile device 100 from a verticaland/or horizontal plane.

Referring to FIG. 2, a high-level client-server-based networkarchitecture 200 is shown, according to some example embodiments. Thenetwork architecture 200 may include systems, applications, modules,and/or other means for utilizing aspects of the present disclosures, asmay be apparent to those with skill in the art. For example, the networkarchitecture 200 may include means for accessing a plurality of imagesof an object, and for generating a composite image based on theplurality of images and according to aspects of the present disclosure.The network architecture 200 may also be configured to transmit thecomposite image to one or more viewers. In some example embodiments, anetworked system 202 may facilitate a network-based marketplace orpayment system 220, providing server-side functionality via a network204 (e.g., the Internet or wide area network (WAN)) to one or moreclient devices 210 and 212. FIG. 2 illustrates, for example, a webclient 206 (e.g., a browser, such as the Internet Explorer® browserdeveloped by Microsoft®), and a programmatic client 208 executing onrespective client devices 210 and 212. The network-based marketplacesystem 220 may include a website or other central repository for storingand displaying the composite images. The images may, for example, beused as advertisements or depictions of products for sale in themarketplace system 220.

Examples of client devices 210 and 212 may include, but are not limitedto, a mobile phone, desktop computer, laptop, portable digitalassistants (PDAs), smart phones, tablets, ultra books, netbooks,laptops, multi-processor systems, microprocessor-based or programmableconsumer electronics, game consoles, set-top boxes, or any othercommunication device that a user may utilize to access the networkedsystem 202. Example client devices 210 and 212 may be consistent withthe mobile device 100 described in FIG. 1. In some embodiments, theclient device 210 and/or 212 may comprise a display module (not shown)to display information (e.g., in the form of user interfaces) andimages. In further embodiments, the client device 210 and/or 212 maycomprise one or more of touch screens, accelerometers, gyroscopes,cameras, microphones, global positioning system (GPS) devices, and soforth. In some examples embodiments, the networked system 202 is anetwork-based marketplace that responds to requests for productlistings, publishes publications comprising item listings of productsavailable on the network-based marketplace, and manages payments forthese marketplace transactions. The product listings may include one ormore images of the one or more various products. The images may includeone or more composite images of a product as described herein. One ormore users 205 may be a person, a machine, or other means of interactingwith client devices 210 and 212. In embodiments, the user 205 is notpart of the network architecture 200, but may interact with the networkarchitecture 200 via client devices 210 and 212 or another means.

An application program interface (API) server 214 and a web server 216are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 218. The application servers 218 mayhost one or more marketplace systems 220, which may comprise one or moremodules or applications and which may be embodied as hardware, software,firmware, or any combination thereof. The application servers 218 are,in turn, shown to be coupled to one or more database servers 224 thatfacilitate access to one or more information storage repositories ordatabase(s) 226. In some example embodiments, the databases 226 arestorage devices that store information to be posted (e.g., publicationsor listings, images of products, etc.) to the marketplace system 220.The databases 226 may also store digital goods information in accordancewith example embodiments.

The marketplace system(s) 220 may provide a number of marketplacefunctions and services to users 205 that access the networked system202. While the marketplace system(s) 220 is shown in FIG. 2 to form partof the networked system 202, it will be appreciated that, in alternativeembodiments, the system 220 may form part of a payment service that isseparate and distinct from the networked system 202.

Further, while the client-server-based network architecture 200 shown inFIG. 2 employs a client-server architecture, the present inventivesubject matter is of course not limited to such an architecture, and mayequally well find application in a distributed, or peer-to-peer,architecture system, for example. The various marketplace system(s) 220may also be implemented as standalone software programs, which do notnecessarily have networking capabilities.

The web client 206 accesses the various marketplace system(s) 220 viathe web interface supported by the web server 216. Similarly, theprogrammatic client 208 accesses the various services and functionsprovided by the marketplace system(s) 220 via the programmatic interfaceprovided by the API server 214. The programmatic client 208 may, forexample, be a seller application (e.g., the Turbo Lister applicationdeveloped by eBay® Inc.) to enable sellers to author and manage listingson the networked system 202 in an off-line manner, and to performbatch-mode communications between the programmatic client 208 and thenetworked system 202.

Additionally, a third party application(s) 228, executing on a thirdparty server(s) 230, is shown as having programmatic access to thenetworked system 202 via the programmatic interface provided by the APIserver 214. For example, the third party application 228, utilizinginformation retrieved from the networked system 202, may support one ormore features or functions on a website hosted by the third party. Thethird party website may, for example, provide one or more promotional,marketplace, or payment functions that are supported by the relevantapplications of the networked system 202. The third party server 230 mayhelp proliferate the display of the composite images according to thepresent disclosures through, for example, advertising a product shown ina composite image.

Referring to FIG. 3, an example image 300 of an object 310 is shown thatmay benefit from being enhanced according to aspects of the presentdisclosures. Object 310 is used merely as one example, and exampleembodiments can certainly utilize other objects. Here, object 310 may bea glass or crystal vase resembling a pineapple. As with normalpineapples, object 310 contains many edges and grooves on its exterior,the likes of which reflect light in many directions when light is shinedon it. Unfortunately, it may be difficult to fully appreciate howbrilliantly light does shine off the many angled facets of the vase ifthe object 310 is displayed only as a single image. Accordingly, amerchant wishing to sell such a product may not feel that posting singlepictures of the object 310 online will effectively capture its fullvalue. Even showing multiple pictures of the object 310 from differentsides may be inadequate, as the object 310—in this example being apineapple vase—is relatively symmetric radially, and thus each sidearound the object 310 would not offer much different perspective.Furthermore, showing single static images would still fail to capturethe full sparkle that the many edges and grooves of the object 310 ismeant to show. In general, it should be understood that specularhighlights of objects, such as the reflective properties of the manyedges and grooves of the object 310, are not fully captured by a singlestatic image, no matter how detailed the image.

Referring to FIG. 4, example image 400 of object 310 shows the beginningof a process for enhancing the specular highlights according to aspectsof the present disclosures. As discussed earlier, a composite image ofthe object 310 may be generated based on multiple images of the object310 in the same position, but with light sources directed at the object310 from different angles in each image. The composite image mayultimately be an interactive image of sorts, the interactive imageconfigured to be manipulated in a display device to display varyinglight angles of the object 310 based on one or more of the multipleimages and in accordance with a direction of a tilt of the displaydevice. The example process may start with recording a first image ofthe object 310, the first image including light from a light sourcedirected at the object 310 (e.g., the pineapple vase) from a firstangle. In this case, a flash light in the upper right corner from theobject 310, not shown, may be shining light at object 310. The angle ofthe light may be apparent based on the shadow formed by object 310 inthe image 400 (e.g. shadow 410), and in some cases additionally based onthe portion of the object 310 that is most brightly illuminated (e.g.bright spot 420).

As an example of a process for practicing at least some aspects of thepresent disclosure, a photographer may position a camera or mobiledevice housing a camera or other image recorder on a tripod or otherstable apparatus. An example of a camera or mobile device may includethe mobile device 100. The object 310 may be positioned fixedly on somestable surface, for example a steady stool or table. The camera may bepositioned to record multiple images of the object 310. An applicationor other software program, according to some example embodiments, maydirect the photographer to record an image of the object 310 with alight source directed at the object 310 from a particular angle, e.g.,the light source directed from the top right of the object 310. Forexample, a user interface (UI) of an example application may appear on adisplay of a mobile device 100 and instruct the user to record an imageof object 310 with a light source directed at the object 310 from aspecific direction. The photographer may then position a light source,such as a flashlight, camera flash, flashbulb, focused light, or someother remote light source onto the object 310 from the specifieddirection, and record an image using the camera or mobile device 100. Insome example embodiments, the mobile device used to record the image maybe the same device that operates the application or software having theUI.

Referring to FIG. 5, example images 510, 520, and 530 show thecontinuation of an example process according to some exampleembodiments. For example, additional images 510, 520, and 530 of theobject 310, e.g., the pineapple vase, may be recorded from the sameposition as the image 400 in FIG. 4. Each additional image 510, 520, and530 may differ from each other in that a light source, not shown, isdirected at the object 310 from a different angle in each image. Forexample, images 510, 520, and 530 show a shadow of the object 310 indifferent directions, indicating that a light source is being directedat the object 310 from different angles in each image 510, 520, and 530.In this case, rubrics 515, 525, and 535 each show a picture of aflashlight 540 indicating the direction that the light source is shiningonto object 310 in each image 510, 520, and 530, respectively. Here,image 510 is recorded with a light source directed onto object 310 fromthe top left of object 310. Similarly, image 520 is recorded with alight source directed onto object 310 from above object 310. Lastly,image 530 is recorded with a light source directed onto object 310 fromthe top right of object 310. It may be apparent that these directionsare in accordance with the flashlight directions shown in rubrics 515,525, and 535, respectively. A mobile device or other digital device maystore each of the images containing the object 310 and varying angles ofdirected light to be blended, or “stitched,” together to form acomposite image of the object 310, according to some exampleembodiments.

Referring to FIGS. 6A and 6B, following an extension of the progressionfrom FIGS. 4 to 5, example comprehensive image 600 shows a morecomprehensive set of images of the object 310, according to some exampleembodiments. Referring to FIG. 6A, an example comprehensive set of nineimages of object 310 is shown, each image recording the object 310 atthe same position but with a light source directed at the object 310from a different angle in each image. Referring to FIG. 6B, each squarein rubric 610 shows a flashlight icon that demonstrates the orientationof the light source directed at the object 310 in each correspondingimage of comprehensive image 600 within the square at the same positionin the rubric 610. As used herein, a “comprehensive set of images” mayrefer to a set of images that captures light sources directed at theobject 310 from various angles around the object 310, e.g., 360 degreesin two dimensions, angles all around a semi-hemisphere centered aroundthe object, etc., in a fairly even and/or uniform manner. In this case,eight images are used to capture light directed all around object 310,and in a ninth image, the light is directed straight at the object 310from a neutral angle. In other cases, more or fewer images may be used,and embodiments are not so limited. For example, four or sixteen imagesmay be used.

Adding further to the example process for practicing aspects of thepresent disclosure discussed starting in FIG. 4, in some exampleembodiments, the numbers in the corners of each square in thecomprehensive image 600 and in rubric 610 may represent an order inwhich an application employing aspects of the present disclosure storesimages of the object 310. For example, continuing with the example of anapplication having the UI, the UI may direct the photographer to take aparticular number of photos of the object 310, with a light sourcedirected at object 310 in a specific order for each photo. For example,as indicated by the number “1” in FIG. 6A, the UI may instruct thephotographer to record a first picture in comprehensive image 600 as animage of the object 310 with the light source oriented directly straightahead, e.g., at a neutral angle relative to the center of object 310.This image is the center image of comprehensive image 600. Thephotographer may record the picture using, e.g., mobile device 100, andthe application may store that picture as the center picture. Next, asindicated by the number “2” in the top center image, the UI may instructthe photographer to record a second picture in comprehensive image 600as an image of object 310 with the light oriented from the top of theobject 310. The photographer may record the picture, and the applicationmay store the second picture as a picture with the light source directedon top. Third, as indicated by the number “3” in the top right image,the application stores an image of object 310 with the light orientedfrom the top-right of the object 310, and so on following the numbers.In some cases, the application may direct the photographer to recordeach of these images in the order specified, and thereby stores theimages in the order captured. Certainly, the order shown is merely oneexample, and other orders are clearly possible according to variousembodiments. In other cases, a photographer may have previously recordeda series of images of the object 310 with different light angles, andmay manually order the images in the application, whereby theapplication also receives an indication of which direction the light iscoming from. The exact mechanics of this process can vary, and manyothers may be apparent to those with ordinary skill in the art. Any andall variants are within the scope of the present disclosures, andembodiments are not so limited.

Referring to FIG. 7, having access to a comprehensive set of imagesshowing light directed at varying angles of the object 310, a compositeimage of the object 310 may be generated according to aspects of thepresent disclosure. As used herein, a “composite image” may refer to anoverlapping or superposition of the plurality of images in thecomprehensive set of images, whereby a subset of the comprehensive setof images may be displayed with varying degrees of opaqueness based on acorrespondence to a degree of tilt or orientation of the devicedisplaying the composite image. The process of generating the compositeimage is represented by the cascading of the nine images in thecomprehensive set of images, as illustrated in image 700. In this way,the “composite image” may be understood as not just a single image, butas a series of multiple images overlapping each other, each of theoverlapping images configured to be modified with varying degrees ofopaqueness (or transparency). In this example, the numbering of thecascading images as shown may signal an order in which the images areoverlaid onto each other. In other example embodiments, such an orderingis not specified, and embodiments are not so limited.

As an example use case, with the composite image now generated, a viewermay utilize an application on a mobile device to view the compositeimage of the object 310. In some example embodiments, if a neutral angleof the composite image is defined as whatever orientation the viewingdevice starts at upon first displaying the composite image, then as theviewer rotates, turns, and/or tilts the viewing device, certain imageswithin the comprehensive set of images will be made completelytransparent (i.e., not viewable), while certain others may be shown witha degree of opaqueness, such that one or more images may be “blended”together. The determination for the degree of opaqueness (or conversely,transparency) of the nine images of the object 310 may depend on thedegree of tilt, e.g., as expressed in two dimensions, from a neutralangle of the viewing device, e.g., the initial starting orientation ofthe viewing device.

As an example of “blending” multiple images of the composite image, saythe viewer displays the object 310 in a viewing device, e.g., mobiledevice 100, starting with the viewing device flat on a table with thedisplay screen facing up. The initial presentation of the object 310 maythen be the center image of the object 310 as shown in the center imageof image 600 (e.g., box #1), while all the other eight images are madecompletely transparent and are not viewable. The viewer can then tiltthe viewing device, for example, raising only the right side of theviewing device so that the display screen is now facing slightly to theleft. In some example embodiments, the composite image may be arrangedsuch that the orientation of the light source shining on the displayedobject is assumed to originate from the initial position of the viewer.Thus, here, by tilting the device slightly to the left, the applicationmay now show an image of the object 310 with the light source orientedfrom the right side of the object 310 (e.g., the image in box #4 ofimage 600), while all the other eight images are made completelytransparent and are not viewable. In other words, it will now appear tothe viewer as if the light directed at the object 310 has come from theright, enabling the viewer to see how the light reflects differently offof the object 310. In some example embodiments, the gradual progressionfrom orienting the viewing device in the initial neutral position tobeing tilted to the left (i.e., raising just the right side of theviewing device) may correspondingly involve a gradual change fromviewing the center image (e.g., box #1 in image 600) to viewing theimage with the light source oriented from the right side (e.g., box #4in image 600). In general, the gradual progression from orienting theviewing device from a first tilted orientation to being tilted to asecond tilted orientation may correspondingly involve a gradual changefrom viewing the object 310 based on a first set of blended images toviewing the object 310 based on a second set of blended images, thefirst set of blended images corresponding to the first tiltedorientation, and the second set of blended images corresponding to thesecond tilted orientation.

For example, halfway between fully raising the right side of the viewingdevice, the center image of the object 310 may be set to 50%transparency, while the image with the light source oriented from theright side may also be set to 50%, transparency. This may generate asort of blended view of the two images that may represent what theobject 310 may look like with the light source directed halfway betweenthe center and fully from the right side. This blended view alsocorresponds to the degree of tilt of the viewing device. As anotherexample, if the device is tilted just a quarter of the full tilt angletoward the left (e.g., the right side of the viewing device is tiltedjust a quarter of the full amount), then the center image of the object310 may be shown at 75% opaqueness (e.g., 25% transparency), while theright image may overlap with the center image and be shown at 25%opaqueness (e.g., 75% transparency), thereby representing theproportional amount of the angle of the light source according to thedegree of tilt of the viewing device. Similarly, the degree oftransparency (or opaqueness) of each image may change smoothly and bemade in accordance with the degree of tilt of the viewing device.

Referring to FIGS. 8A and 8B, two more examples illustrating theblending of the comprehensive set of images are shown in images 800 and810, respectively. These two examples may illustrate slightly morecomplex situations. Referring to FIG. 8A and image 800, the “X” and “Y”values in the bottom right of image 800 may indicate lengthmeasurements, or in other cases, a percentage of the degree to which theviewing device has been tilted away from its horizontal and verticalaxes. For example, the values “X=+0.75” and “Y=+0.50” may indicate thatthe viewing device has been tilted up from the right 75% of its fulltilt view, and up from the top 50% of its full tilt view. Accordingly, ablended image of the right-most image and the top-right image, e.g.,images in boxes #3 and #4 in image 600, may be used to convey how lightmay shine off of object 310 at the specified tilt angle. In other cases,the center image may also be used, as the tilt may not be fully towardthe top or the right.

Referring to FIG. 8B and image 810, similarly, the values “X=−0.793402”and “Y=0.13847” may indicate that the viewing device has been tilteddown from the right (i.e., up from the left) ˜79% of its full tilt view,and down from the top (i.e., up from the bottom) ˜13% of its full tiltview. Accordingly, a blended image of the left-most image and thebottom-left image, e.g., images in boxes #7 and #8 in image 600, may beused to convey how light may shine off of object 310 at the specifiedtilt angle. In other cases, the center image may also be used, as thetilt may not be fully toward the top or the right. In other cases, thebottom image may also be used, as the tilt angle may also be consideredto include part of the bottom image.

In general, a “stitching” or “blending” algorithm may be implemented tocalculate the degree of transparency of each of the plurality of imagesbased on a tilt input. For example, an algorithm to computing a view ofthe composite image based on a level of blending between the pluralityof images in the comprehensive set of images may be based on computing aEuclidean distance. The Euclidean distance function may take in asparameters a difference between an initial orientation of the lightsource angle and the current tilt angle. In some example embodiments,the angles may be broken up into two dimensional components, such as an“X” direction and a “Y” direction. Other two dimensional coordinatesystems may be used, of course, as well as other distance functions oreven other methods for computing a view of the composite image based ona degree of tilt, as may be apparent to those with skill in the art, andembodiments are not so limited. In some example embodiments, a separatesmoothing function may be employed to show a gradual change between aninitial tilt orientation and a current tilt orientation. The smoothingfunction may interpolate the motion between the two orientations, andshow a change in the light angles of the object 310 accordingly.

In general, aspects of the present disclosure may display varyingnumbers of the comprehensive set of images in the composite image, eachin varying degrees of opaqueness (or transparency), based on acorresponding degree of tilt of the viewing device displaying thecomposite image of the object 310. As the orientation and degree of tiltchanges, e.g., based on how the viewer rotates and tilts the device, thedegrees of opaqueness for each image may correspondingly change as inthe manners discussed herein. Thus, as the viewer tilts and rotates thedevice displaying the composite image, the viewer can get an interactiveperspective of how the light reflects off of the object 310 from amultitude of different angles, as the composite image would beconstantly changing in accordance with the changing tilts and/orrotations.

Aspects of the present disclosure therefore may help facilitate thepresentation of objects with prominent specular properties, the likes ofwhich may not otherwise be effectively conveyed through conventionalmeans. In addition, unlike when trying to demonstrate specularproperties through a video or other motion picture, the user has thefreedom and control to examine the many specular properties of an objectin at least two planar dimensions, rather than being limited to at mostviewing a video of the object forwards or backwards.

While an actual picture of the object may not be recorded at everysingle nuanced angle (e.g., in examples, only nine images are used togenerate all available viewing angles), the blended pictures create asimulated sense of what the object may look like in different lightingscenarios. The human mind generally finds this sufficient, as it is notusually able to distinguish between an exact image and an approximationbetween two or more similar-looking images. In other words, the humanmind's treatment of reflecting light tends to be quite forgiving.Furthermore, the motion of changing viewpoints of light on the object iswhat tends to be noticed more by the human mind, and the exactness ofstatic images from one to the next are not as important for realism'ssake so much as the smoothness of the transition from one image toanother.

In some example embodiments, displaying the right “blend” of images inthe composite image may be based on an analogous input to a tilt angle,such as a mouse-controlled scrolling motion, or a mouse-controlleddragging motion of the composite image. For example, the tilt androtation of the composite may also be displayed on a PC that does notpossess any means for detecting tilt motions, such as gyroscopes, lasertrackers or other positioning means. Instead, for example, the compositeimage can be “clicked and dragged,” where a position of the mouse cursoron the image relative to its center may act as an analog to measuring adegree of tilt. Accordingly, the appropriate blend of images may bebased on a corresponding position of the mouse cursor on the imagerelative to its center. As another example, two scroll bars, onepositioned along the right of the composite image, and anotherpositioned along the bottom of the composite image, may be scrolled backand forth as an analog to measuring a degree of tilt. As anotherexample, the tilt may be simulated by a finger scroll or swipe along thedisplay screen, whereby, for example, sliding a finger along the top endof the display may display a change in the light reflections on theobject from the top angles, and so forth. Similarly, other meansapparent to those with skill in the art may be employed to determine theproper blend of images in the composite image, and embodiments are notso limited. Thus, as used herein, reference to a degree of tilt orrotation according to various techniques of the present disclosure alsoincludes analogous methods for devices without the ability to determinea degree of tilt or rotation.

In some example embodiments, multiple sides or faces of an object mayalso be connected together, with each side or face of the object itselfbeing a composite image of overlapping images of that side or facerecorded with different light angles. For example, the preceding imagesof the object 310 show only one side of the vase. An overhead ortop-view of the object 310 is not shown, but could also be shown usingthe methods described herein. In other words, for example, nine imagesof a top-view of the object 310 could also be recorded, the nine imagesrecorded in a similar fashion to those described in the presenteddisclosure (see, e.g., FIGS. 4, 5, 6A, 6B, and 7). Then, a compositeimage of the top-view of the object 310 may be generated.

In some embodiments, the different faces or sides of the object may beconnected together to add an additional dimension to the viewing of theobject. For example, a user of the viewer device may also be able toslide his finger down the display, across the face of the side image ofthe object 310. This may cause the image to scroll or flip to a top-viewcomposite image of the object 310, at which point the user can tilt androtate the viewer device to experience how light reflects off the top ofthe object 310. In some example embodiments, the scrolling from the sideview to the top view may also be smoothly blended or stitched together,using known image connecting techniques similar to those used to stitchpictures to form a panoramic view. In other example embodiments, themultiple composite images showing different sides may not be soconnected, and instead the user can just click or tap to the nextcomposite image showing a different view of the object 310.

In some example embodiments, the direction of the blending between themultiple images may be inverted compared to the directions describedabove, and embodiments are not so limited. For example, the proportionof images blended according the example techniques described may bebased on the degree of tilt made from the left and bottom of the viewerdevice, rather than from the right and the top. In general, the exactdirection and/or degree of the blending of images may be based ondifferent orientations or degrees of the tilt or rotations, andembodiments are not so limited.

Referring to FIG. 9, example flowchart 900 illustrates an examplemethodology for generating a composite image of an object. The examplemethodology may be consistent with the methods described herein,including, for example, the descriptions in FIGS. 3, 4, 5, 6A, 6B, 7,8A, and 8B. At block 910, a device, such as the mobile device 100 asdescribed in FIG. 1, may access a first plurality of images, each of theimages in the first plurality of images comprising: an object (such asobject 310 of FIG. 3) recorded from a first position, and a reflectionof light on the object from a light source located at a differentlocation than in each of the other images in the first plurality. Thefirst plurality of images may be recorded according to the methodsdescribed herein, including, for example, descriptions in FIGS. 4, 5,6A, and 6B. For example, the device may be stabilized in a certainposition and record the first plurality of objects with a light sourceshining on the object from different locations in each of the firstplurality of images. The images may be stored in the device, or in othercases may be stored in a remote server, such as a cloud server, via anetwork. In some cases, the device may be a remote server, and theimages may be accessed from a mobile device that recorded the images.

At block 920, the device may generate a first composite image of theobject, the first composite image comprising a superposition of thefirst plurality of images, and wherein each of the images in the firstplurality is configured to change in a degree of transparency within thefirst composite image and in accordance with a first input based on adegree of tilt. The composite image may be consistent with descriptionsof the composite image discussed herein, for example, in FIGS. 4, 5, 6A,6B 7, 8A, and 8B. The composite image may be stored in the device. Inother cases, the composite image may be stored in a remote server, suchas a cloud server. After generating the composite image, in some exampleembodiments, the composite may be transmitted to a viewer deviceseparate from the device that generated the composite image. In othercases, the device that generated the composite image may be the same asthe viewer device.

In some example embodiments, the change in the degree of transparency ofeach of the images in the first plurality is further in accordance witha direction of the location of the light source relative to the objectin each of the images in the first plurality. In some exampleembodiments, the change in the degree of transparency of each of theimages in the first plurality is based on a correspondence between thedegree of tilt and a direction of the location of the light sourcerelative to the object in each of the images in the first plurality. Insome example embodiments, the change in the degree of transparency ofeach of the images in the first plurality is based on tilt calculationsfrom a stitching algorithm. These descriptions may be consistent withthe descriptions discussed throughout the disclosures, for example, inFIGS. 4, 5, 6A, 6B 7, 8A, and 8B.

In some example embodiments, the first input based on the degree of tiltincludes a measurement from an accelerometer or gyroscope in a displaydevice configured to display the first composite image. For example, thedisplay device may measure the degree of tilt of the device by a user,based on readings from one or more accelerometers or gyroscopes in thedisplay device. In some example embodiments, the first input based onthe degree of tilt comprises touch data from a display screen of adevice configured to display the first composite image. For example, thedegree of tilt may be based on readings of finger swipes on a capacitivetouch screen displaying the composite image. In some exampleembodiments, the first input based on the degree of tilt comprises datafrom a mouse scroll. For example, a click-and-drag input coupled with amovement of a mouse cursor may simulate a tilt angle, and the degree oftransparency in each of the images may change in accordance with thelocation of the mouse movements. These descriptions may be consistentwith the descriptions discussed throughout the disclosures, for example,in FIGS. 4, 5, 6A, 6B 7, 8A, and 8B.

In some example embodiments, a second composite image of the object,recorded from a different position so as to have recorded a differentside of the object, may be connected together with the first compositeimage via a sort of smoothing graphical connection. The second compositeimage may be generated through similar means as the first compositeimage, but from a different position showing a different side of theobject. A graphical connection between the first composite image and thesecond composite image may be generated, wherein a display of the firstcomposite image is configured to transition to a display of the secondcomposite image, the transition being based on the graphical connectionbetween the first composite image and the second composite image. Thesedescriptions may be consistent with the descriptions discussedthroughout the disclosures, for example, in FIGS. 4, 5, 6A, 6B 7, 8A,and 8B.

Referring to FIG. 10, a flowchart 1000 illustrates a counterpartmethodology to the methodology described in FIG. 9, but in this caserelated to accessing and viewing the composite image. The methodsdescribed here may be implemented by a display device that has accessedor stored the composite image. The display device may be a differentdevice than the device used to record the plurality of images. In othercases, the display device may be the same as the device used to recordthe plurality of images. In some cases, the display device may alsogenerate the composite image but may not have recorded the plurality ofimages.

At block 1010, a display device may access a first composite image of anobject (such as object 310), the first composite image comprising asuperposition of a first plurality of images, wherein each of the imagesin the first plurality of images comprises: the object recorded from afirst position, and a reflection of light on the object from a lightsource located at a different location than in each of the other imagesin the first plurality. At block 1020, the display device may access afirst input based on a degree of tilt. As mentioned before, the degreeof tilt may be based on a number of different input means, including,for example, data from a gyroscope, accelerometer, touch data, or mouseinput, which can include analogs to tilt data as described above. Atblock 1030, the display device may display the composite image, whereineach of the images within the composite image is displayed with a degreeof transparency in accordance with the first degree of tilt input. Forexample, some of the images may be completely transparent, while a fewimages may have a non-zero degree of opaqueness that corresponds to acalculated angle at which the viewer wishes to view the object, based onthe accessed tilt input. In general, the methods described here may beconsistent with the methods described throughout the disclosures,including, for example, the descriptions in FIGS. 4, 5, 6A, 6B 7, 8A,and 8B.

In some example embodiments, similar to the methods for generating thecomposite image, a second composite image may be graphically connectedwith the first composite image, and the viewer may enter a second inputto scroll smoothly between the first and second composite images.

Referring to FIG. 11, the block diagram illustrates components of amachine 1100, according to some example embodiments, able to readinstructions 1124 from a machine-readable medium 1122 (e.g., anon-transitory machine-readable medium, a machine-readable storagemedium, a computer-readable storage medium, or any suitable combinationthereof) and perform any one or more of the methodologies discussedherein, in whole or in part. Specifically, FIG. 11 shows the machine1100 in the example form of a computer system (e.g., a computer) withinwhich the instructions 1124 (e.g., software, a program, an application,an applet, an app, or other executable code) for causing the machine1100 to perform any one or more of the methodologies discussed hereinmay be executed, in whole or in part.

In alternative embodiments, the machine 1100 operates as a standalonedevice or may be connected (e.g., networked) to other machines. In anetworked deployment, the machine 1100 may operate in the capacity of aserver machine or a client machine in a server-client networkenvironment, or as a peer machine in a distributed (e.g., peer-to-peer)network environment. The machine 1100 may include hardware, software, orcombinations thereof, and may as examples be a server computer, a clientcomputer, a personal computer (PC), a tablet computer, a laptopcomputer, a netbook, a cellular telephone, a smartphone, a set-top box(STB), a personal digital assistant (PDA), a web appliance, a networkrouter, a network switch, a network bridge, or any machine capable ofexecuting the instructions 1124, sequentially or otherwise, that specifyactions to be taken by that machine. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executethe instructions 1124 to perform all or part of any one or more of themethodologies discussed herein.

The machine 1100 includes a processor 1102 (e.g., a central processingunit (CPU), a graphics processing unit (GPU), a digital signal processor(DSP), an application specific integrated circuit (ASIC), aradio-frequency integrated circuit (RFIC), or any suitable combinationthereof), a main memory 1104, and a static memory 1106, which areconfigured to communicate with each other via a bus 1108. The processor1102 may contain microcircuits that are configurable, temporarily orpermanently, by some or all of the instructions 1124 such that theprocessor 1102 is configurable to perform any one or more of themethodologies described herein, in whole or in part. For example, a setof one or more microcircuits of the processor 1102 may be configurableto execute one or more modules (e.g., software modules) describedherein.

The machine 1100 may further include a video display 1110 (e.g., aplasma display panel (PDP), a light emitting diode (LED) display, aliquid crystal display (LCD), a projector, a cathode ray tube (CRT), orany other display capable of displaying graphics or video). The machine1100 may also include an alphanumeric input device 1112 (e.g., akeyboard or keypad), a cursor control device 1114 (e.g., a mouse, atouchpad, a trackball, a joystick, a motion sensor, an eye trackingdevice, or other pointing instrument), a storage unit 1116, an audiogeneration device 1118 (e.g., a sound card, an amplifier, a speaker, aheadphone jack, or any suitable combination thereof), and a networkinterface device 1120.

The storage unit 1116 includes the machine-readable medium 1122 (e.g., atangible and non-transitory machine-readable storage medium) on whichare stored the instructions 1124 embodying any one or more of themethodologies or functions described herein, including, for example, anyof the descriptions of FIGS. 1, 2, 3, 4, 5, 6A, 6B, 7, SA, 8B, 9, and/or10. The instructions 1124 may also reside, completely or at leastpartially, within the main memory 1104, within the processor 1102 (e.g.,within the processor's cache memory), or both, before or duringexecution thereof by the machine 1100. The instructions may also residein the static memory 1106.

Accordingly, the main memory 1104 and the processor 1102 may beconsidered machine-readable media (e.g., tangible and non-transitorymachine-readable media). The instructions 1124 may be transmitted orreceived over a network 1126 via the network interface device 1120. Forexample, the network interface device 1120 may communicate theinstructions 1124 using any one or more transfer protocols (e.g.,hypertext transfer protocol (HTTP)). The machine 1100 may also representexample means for performing any of the functions described herein,including the processes described in FIGS. 1, 2, 3, 4, 5, 6A, 6B, 7, 8A,8B, 9, and/or 10.

In some example embodiments, the machine 1100 may be a portablecomputing device, such as a smart phone or tablet computer, and have oneor more additional input components (e.g., sensors or gauges), notshown. Examples of such input components include an image inputcomponent (e.g., one or more cameras), an audio input component (e.g., amicrophone), a direction input component (e.g., a compass), a locationinput component (e.g., a global positioning system (GPS) receiver), anorientation component (e.g., a gyroscope), a motion detection component(e.g., one or more accelerometers), an altitude detection component(e.g., an altimeter), and a gas detection component (e.g., a gassensor). Inputs harvested by any one or more of these input componentsmay be accessible and available for use by any of the modules describedherein.

As used herein, the term “memory” refers to a machine-readable mediumable to store data temporarily or permanently and may be taken toinclude, but not be limited to, random-access memory (RAM), read-onlymemory (ROM), buffer memory, flash memory, and cache memory. While themachine-readable medium 1122 is shown in an example embodiment to be asingle medium, the term “machine-readable medium” should be taken toinclude a single medium or multiple media (e.g., a centralized ordistributed database, or associated caches and servers) able to storeinstructions. The term “machine-readable medium” shall also be taken toinclude any medium, or combination of multiple media, that is capable ofstoring the instructions 1124 for execution by the machine 1100, suchthat the instructions 1124, when executed by one or more processors ofthe machine 1100 (e.g., processor 1102), cause the machine 1100 toperform any one or more of the methodologies described herein, in wholeor in part. Accordingly, a “machine-readable medium” refers to a singlestorage apparatus or device, as well as cloud-based storage systems orstorage networks that include multiple storage apparatus or devices. Theterm “machine-readable medium” shall accordingly be taken to include,but not be limited to, one or more tangible (e.g., non-transitory) datarepositories in the form of a solid-state memory, an optical medium, amagnetic medium, or any suitable combination thereof.

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute softwaremodules (e.g., code stored or otherwise embodied on a machine-readablemedium or in a transmission medium), hardware modules, or any suitablecombination thereof. A “hardware module” is a tangible (e.g.,non-transitory) unit capable of performing certain operations and may beconfigured or arranged in a certain physical manner. In various exampleembodiments, one or more computer systems (e.g., a standalone computersystem, a client computer system, or a server computer system) or one ormore hardware modules of a computer system (e.g., a processor or a groupof processors) may be configured by software (e.g., an application orapplication portion) as a hardware module that operates to performcertain operations as described herein.

In some embodiments, a hardware module may be implemented mechanically,electronically, or any suitable combination thereof. For example, ahardware module may include dedicated circuitry or logic that ispermanently configured to perform certain operations. For example, ahardware module may be a special-purpose processor, such as a fieldprogrammable gate array (FPGA) or an ASIC. A hardware module may alsoinclude programmable logic or circuitry that is temporarily configuredby software to perform certain operations. For example, a hardwaremodule may include software encompassed within a general-purposeprocessor or other programmable processor. It will be appreciated thatthe decision to implement a hardware module mechanically, in dedicatedand permanently configured circuitry, or in temporarily configuredcircuitry (e.g., configured by software) may be driven by cost and timeconsiderations.

Accordingly, the phrase “hardware module” should be understood toencompass a tangible entity, and such a tangible entity may bephysically constructed, permanently configured (e.g., hardwired), ortemporarily configured (e.g., programmed) to operate in a certain manneror to perform certain operations described herein. As used herein,“hardware-implemented module” refers to a hardware module. Consideringembodiments in which hardware modules are temporarily configured (e.g.,programmed), each of the hardware modules need not be configured orinstantiated at any one instance in time. For example, where a hardwaremodule comprises a general-purpose processor configured by software tobecome a special-purpose processor, the general-purpose processor may beconfigured as respectively different special-purpose processors (e.g.,comprising different hardware modules) at different times. Software(e.g., a software module) may accordingly configure one or moreprocessors, for example, to constitute a particular hardware module atone instance of time and to constitute a different hardware module at adifferent instance of time.

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multiplehardware modules exist contemporaneously, communications may be achievedthrough signal transmission (e.g., over appropriate circuits and buses)between or among two or more of the hardware modules. In embodiments inwhich multiple hardware modules are configured or instantiated atdifferent times, communications between such hardware modules may beachieved, for example, through the storage and retrieval of informationin memory structures to which the multiple hardware modules have access.For example, one hardware module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware module may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules may also initiate communications with input oroutput devices, and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions describedherein. As used herein, “processor-implemented module” refers to ahardware module implemented using one or more processors.

Similarly, the methods described herein may be at least partiallyprocessor-implemented, a processor being an example of hardware. Forexample, at least some of the operations of a method may be performed byone or more processors or processor-implemented modules. As used herein,“processor-implemented module” refers to a hardware module in which thehardware includes one or more processors. Moreover, the one or moreprocessors may also operate to support performance of the relevantoperations in a “cloud computing” environment or as a “software as aservice” (SaaS). For example, at least some of the operations may beperformed by a group of computers (as examples of machines includingprocessors), with these operations being accessible via a network (e.g.,the Internet) and via one or more appropriate interfaces (e.g., anapplication program interface (API)).

The performance of certain operations may be distributed among the oneor more processors, not only residing within a single machine, butdeployed across a number of machines. In some example embodiments, theone or more processors or processor-implemented modules may be locatedin a single geographic location (e.g., within a home environment, anoffice environment, or a server farm). In other example embodiments, theone or more processors or processor-implemented modules may bedistributed across a number of geographic locations.

Some portions of the subject matter discussed herein may be presented interms of algorithms or symbolic representations of operations on datastored as bits or binary digital signals within a machine memory (e.g.,a computer memory). Such algorithms or symbolic representations areexamples of techniques used by those of ordinary skill in the dataprocessing arts to convey the substance of their work to others skilledin the art. As used herein, an “algorithm” is a self-consistent sequenceof operations or similar processing leading to a desired result. In thiscontext, algorithms and operations involve physical manipulation ofphysical quantities. Typically, but not necessarily, such quantities maytake the form of electrical, magnetic, or optical signals capable ofbeing stored, accessed, transferred, combined, compared, or otherwisemanipulated by a machine. It is convenient at times, principally forreasons of common usage, to refer to such signals using words such as“data,” “content,” “bits,” “values,” “elements,” “symbols,”“characters,” “terms,” “numbers,” “numerals,” or the like. These words,however, are merely convenient labels and are to be associated withappropriate physical quantities.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or any suitable combination thereof), registers, orother machine components that receive, store, transmit, or displayinformation. Furthermore, unless specifically stated otherwise, theterms “a” or “an” are herein used, as is common in patent documents, toinclude one or more than one instance. Finally, as used herein, theconjunction “or” refers to a non-exclusive “or,” unless specificallystated otherwise.

What is claimed is:
 1. A computing device comprising a display screen, the computing device being configured to display on the screen a first composite image of an object based on a first plurality of images, each of the images in the first plurality of images comprising the object where the object is illuminated such that a reflection of light on the object is different in each of the images in the first plurality of images, the first composite image comprising a superposition of the first plurality of images, where each of the images in the first plurality of images is configured to change in a degree of transparency within the first composite image based on a user input.
 2. The computing device of claim 1 wherein display of the first composite image comprises adjusting the degree of transparency for each of the first plurality of images in response to the user input to present an interactive perspective of light reflections from the object.
 3. The computing device of claim 2 wherein the degree of transparency for each of the first plurality of images is associated with a corresponding value of the user input.
 4. The computing device of claim 1, wherein the change in the degree of transparency of each of the images in the first plurality of images is based on a correspondence between the user input and a direction of a location of a light source relative to the object in each of the images in the first plurality of images.
 5. The computing device of claim 1, wherein the change in the degree of transparency of each of the images in the first plurality of images is based on calculations from a stitching algorithm.
 6. The computing device of claim 1, wherein the user input comprises a measurement from an accelerometer and/or gyroscope in a display device configured to display the first composite image.
 7. The computing device of claim 1, wherein the user input comprises touch data from a display screen of a device configured to display the first composite image.
 8. The computing device of claim 1, wherein the user input comprises data from a mouse scroll.
 9. The computing device of claim 1 wherein the user interface is further configured to transition to a display of a second composite image from the display of the first composite image, with the transition based on a graphical connection between the first composite image and the second composite image.
 10. The computing device of claim 9 wherein the second composite image is generated by accessing a second plurality of images, each of the images in the second plurality of images comprising the object recorded from a second position, wherein the object in the second position is illuminated such that in each image of the second plurality of images, second reflections of light are present on the object from second light sources located at a different location in each of the second plurality of images; and generating a second composite image of the object, the second composite image comprising a superposition of the second plurality of images, and wherein each image of the second plurality of images is configured to change in a degree of transparency within the second composite image and in accordance with a second user input.
 11. A system comprising: a first memory configured to store a first plurality of image; one or more processors coupled to the memory; and a display screen configured by the one or more processors to display on the display screen a first composite image of an object based on a first plurality of images, each of the images in the first plurality of images comprising the object where the object is illuminated such that a reflection of light on the object is different in each of the images in the first plurality of images, the first composite image comprising a superposition of the first plurality of images, where each of the images in the first plurality of images is configured to change in a degree of transparency within the first composite image based on a user input.
 12. The system of claim 11 wherein display of the first composite image comprises adjusting the degree of transparency for each of the first plurality of images in response to the user input to present an interactive perspective of light reflections from the object.
 13. The system of claim 11 wherein, wherein the change in the degree of transparency of each of the images in the first plurality of images is based on a correspondence between the user input and a direction of a location of a light source relative to the object in each of the images in the first plurality of images.
 14. The system of claim 11 wherein, wherein the change in the degree of transparency of each of the images in the first plurality of images is based on calculations from a stitching algorithm.
 15. The system of claim 11 wherein, wherein the user input comprises a measurement from an accelerometer and/or gyroscope in a display device configured to display the first composite image.
 16. The system of claim 11 wherein, wherein the user input comprises touch data from a display screen of a device configured to display the first composite image.
 17. The system of claim 11 wherein the user interface is further configured to transition to a display of a second composite image from the display of the first composite image, with the transition based on a graphical connection between the first composite image and the second composite image; wherein the second composite image is generated by accessing a second plurality of images, each of the images in the second plurality of images comprising the object recorded from a second position, wherein the object in the second position is illuminated such that in each image of the second plurality of images, second reflections of light are present on the object from second light sources located at a different location in each of the second plurality of images; and generating a second composite image of the object, the second composite image comprising a superposition of the second plurality of images, and wherein each image of the second plurality of images is configured to change in a degree of transparency within the second composite image and in accordance with a second user input.
 18. A non-transitory computer-readable medium embodying instructions that, when executed by a processor of a device, causes the device to generate a user interface on a display screen to display on the display screen a first composite image of an object based on a first plurality of images, each of the images in the first plurality of images comprising the object where the object is illuminated such that a reflection of light on the object is different in each of the images in the first plurality of images, the first composite image comprising a superposition of the first plurality of images, where each of the images in the first plurality of images is configured to change in a degree of transparency within the first composite image based on a user input.
 19. The non-transitory computer-readable medium of claim 18, wherein the change in the degree of transparency of each of the images in the first plurality of images is further in accordance with a direction of a location of the light source relative to the object in each of the images in the first plurality of images.
 20. The non-transitory computer-readable medium of claim 18, wherein the change in the degree of transparency of each of the images in the first plurality of images is based on a correspondence between the user input and a direction of the location of the light source relative to the object in each of the images in the first plurality of images.
 21. The non-transitory computer-readable medium of claim 18, wherein the instructions further cause the user interface to transition to a display of a second composite image from the display of the first composite image, with the transition based on a graphical connection between the first composite image and the second composite image; wherein the second composite image is generated by accessing a second plurality of images, each of the images in the second plurality of images comprising the object recorded from a second position, wherein the object in the second position is illuminated such that in each image of the second plurality of images, second reflections of light are present on the object from second light sources located at a different location in each of the second plurality of images; and wherein the second composite image is further generated by generating a second composite image of the object, the second composite image comprising a superposition of the second plurality of images, and wherein each image of the second plurality of images is configured to change in a degree of transparency within the second composite image and in accordance with a second user input. 